"""
Chat package with separated domain models, repositories, and use cases.

Compatibility: preserves `chat_manager` import path for existing callers.
"""

from .domain import ChatSummary, Message, Role, Session, ToolCall
from .exceptions import (
    ChatError,
    InvalidRequestError,
    LLMProviderError,
    RepositoryError,
    SessionNotFoundError,
    ToolCallError,
)
from .manager import ChatManager, chat_manager
from .repositories import MessageRepository, SessionRepository, message_repository, session_repository

__all__ = [
    "ChatManager",
    "ChatSummary",
    "ChatError",
    "InvalidRequestError",
    "LLMProviderError",
    "RepositoryError",
    "SessionNotFoundError",
    "ToolCallError",
    "Message",
    "MessageRepository",
    "Role",
    "Session",
    "SessionRepository",
    "ToolCall",
    "chat_manager",
    "message_repository",
    "session_repository",
]
